package item;

import java.util.List;

import item.exception.ItemInvalidoException;
import util.CampoObrigatorioException;
import util.ErroAcessoRepositorioException;
import junit.framework.TestCase;

public class ItemTest extends TestCase {

	Item it1 = null;
	
	RepositorioItensBDR rep;
	
	protected void setUp() throws Exception {
		it1 = new Item (8,"suco",1.2);
		
		
		rep = new RepositorioItensBDR();
		
	}

	public void testConsultarItem() {
		try {
			Item aux = rep.consultarItem(0);
			System.out.println(aux.getCodigo()+"--"+aux.getDescricao()
					+"--"+aux.getPreco());
		} catch (ItemInvalidoException e) {
			fail("item invalido");
		} catch (ErroAcessoRepositorioException e) {
			fail("erro de acesso ao repsitorio");
		}
		
	}

	/*public void testInserirItem() {
		try {
			rep.inserirItem(it1);
			
		} catch (ErroAcessoRepositorioException e) {
			fail("erro de acesso ao repsitorio");
		} catch (CampoObrigatorioException e) {
			fail("campo obrigatorio");
		}
		
		
	}*/

	public void testListarItens() {
		try {
			List<Item> itens = rep.listarItens();
			for(Item aux : itens){
				System.out.println("********************");
				System.out.println(aux.getCodigo()+"--"+aux.getDescricao()
						+"--"+aux.getPreco());
			}
		} catch (ErroAcessoRepositorioException e) {
			fail("erro de acesso ao repsitorio");
		}
	}

	public void testAlterarItem() {
		try {
			rep.alterarItem(it1);
		} catch (ErroAcessoRepositorioException e) {
			fail("erro de acesso ao repsitorio");
		} catch (ItemInvalidoException e) {
			fail("item invalido");
		}
	}

	public void testExcluirItem() {
		try {
			rep.excluirItem(4);
		} catch (ErroAcessoRepositorioException e) {
			fail("erro de acesso ao repsitorio");
		} catch (ItemInvalidoException e) {
			fail("item invalido");
		}
		
	}

	public void testExiste() {
		
		try {
			assertTrue(rep.existe(4));
			assertTrue(rep.existe(3));
			assertTrue(rep.existe(5));
			assertTrue(rep.existe(6));
			assertTrue(rep.existe(7));
			assertTrue(rep.existe(8));
			assertFalse(rep.existe(10));
		} catch (ErroAcessoRepositorioException e) {
			fail("erro de acesso ao repsitorio");
		}
	}

}
